Melt butter in a saucepan over low heat. Add milk and heat for just a minute until warmed (an instant read thermometer should read 120-130°). Do not heat too much or mixture will be too hot and kill the yeast.
In the bowl of a stand mixer, or a large bowl if mixing by hand, combine 2 cups of the bread flour with yeast, brown sugar, cinnamon and salt. Add the warm milk and butter mixture, egg, and vanilla extract. Stir with a dough whisk or spatula to form a wet shaggy dough.
Begin working the dough, either by hand or with a mixer and dough hook on low speed, adding more flour a few tablespoons at a time until the dough is smooth, elastic and mostly clears the bowl. It should still feel very soft and tacky to the touch. You’ll need between 2 ½ to 3 cups flour, though the exact amount will vary. (Don’t add too much or your dough will be dense and dry. Always error on the side of adding too little; more can be added when you roll it out if it's too sticky.)
Shape the dough into a round, cover the bowl, and let it rise in a warm place for about an hour until the dough has almost doubled in size.
Gently punch down the dough and knead it a few times. Let it rest for about 10 minutes, then roll out to a large rectangle about 8×14 inches. Top with chopped apples, dried cranberries and pecans.
Starting at one long end, tightly roll up the bread (don’t let the toppings get squished out!). Either tuck ends under and transfer to a greased 9×5-inch loaf pan for a traditional loaf, or shape into a braid.
To shape into a braid (optional): Cut the roll of dough down the middle, exposing the inside. Set 2 strands into an “x” and then twist ends over each other from the center outward. Tuck ends under and place in loaf pan.
Cover the shaped loaf and let it rise more while you preheat the oven to 350°F, about 30 minutes. The bread is ready to bake when it looks slightly puffy (it won’t exactly double in size).
If you want a shiny golden crust (as shown in these photos), brush the dough with an egg wash before baking. Then, bake for about 30-40 minutes until golden brown. Test for doneness with a toothpick, if it’s clean then the bread is done.
Let the loaf finish setting up in the pan for 5-10 minutes, then remove it and let it cool completely on a wire rack. (If you let the bread cool completely in the pan it creates condensation and actually makes the bottom a bit soggy.) Once the bread is cool, slice and serve as desired.